package modelo;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.JOptionPane;

public class ProductoDAO {

	public ProductoDAO() {
		super();
	}

	public void registrarProducto(Producto producto) {
		String tiraSQL = "INSERT INTO producto "+
		 				 "(codigoproducto, descripcion, codigocategoria, precio, status) "+
		 				 "VALUES ("+
		 				 "'"+producto.getCodigoproducto()+"', '"+producto.getDescripcion()+
		 				 "','"+producto.getCodigocategoria()+"',"+producto.getPrecio()+","+
		 				 producto.getStatus()+" )";
		Conexion.ejecutar(tiraSQL);
	}
	
	public List<Producto> consultarProductos() {
		List<Producto> productos = new ArrayList<Producto>();
		String tiraSQL = "SELECT * FROM producto";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				String codigo = resultSet.getString("codigoproducto");
				String descripcion = resultSet.getString("descripcion");
				String codigocategoria = resultSet.getString("codigocategoria");
				float precio = resultSet.getFloat("precio");
				int status  = resultSet.getInt("status");
				Producto producto = new Producto(codigo, descripcion, codigocategoria, precio, status);
				productos.add(producto);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return productos;
	}
	
	public Vector<String> cargarComboProducto(String nombrecategoria){
		Vector<String> vector = new Vector<String>();
		String codigo = "";
		String tiraSQL2 = "select codigocategoria from categoria where nombre = '"+nombrecategoria+"'";
		ResultSet resultSet = Conexion.consultar(tiraSQL2);
		try{
			while(resultSet.next()){
				codigo = resultSet.getString("codigocategoria");
			}
		} 
		catch(SQLException e) {
			e.printStackTrace();
		}
		String tiraSQL = "select * from producto where codigocategoria= '"+codigo+"'";
		resultSet = Conexion.consultar(tiraSQL);
		try{
			while(resultSet.next()){
				String descripcion = resultSet.getString("descripcion");
				vector.add(descripcion);
			}
		} 
		catch(SQLException e) {
			e.printStackTrace();
		}
		return vector;
	}
	
	public Producto busquedaProducto(String nombre){
		Producto producto = new Producto();
		producto = null;
		String TiraSQL = "SELECT * FROM producto WHERE descripcion = '"+nombre+"' ";
		ResultSet resultSet = Conexion.consultar(TiraSQL);
		try{
			while(resultSet.next()){
				String codigo = resultSet.getString("codigoproducto");
				String codigocategoria = resultSet.getString("codigocategoria");
				float precio = resultSet.getFloat("precio");
				int status = resultSet.getInt("status");
				
				producto = new Producto(codigo, nombre, codigocategoria, precio, status);
				
			}
		}
		catch (SQLException e){
			e.printStackTrace();
		}
		return producto;
	}
	
	public Producto busquedaProducto2(String codigo){
		Producto producto = new Producto();
		producto = null;
		String TiraSQL = "SELECT * FROM producto WHERE codigoproducto = '"+codigo+"' ";
		ResultSet resultSet = Conexion.consultar(TiraSQL);
		try{
			while(resultSet.next()){
				String descripcion = resultSet.getString("descripcion");
				String codigocategoria = resultSet.getString("codigocategoria");
				float precio = resultSet.getFloat("precio");
				int status = resultSet.getInt("status");
				
				producto = new Producto(codigo, descripcion, codigocategoria, precio, status);
				
			}
		}
		catch (SQLException e){
			e.printStackTrace();
		}
		return producto;
	}
	
}